package com.xbongbong.pro.statistic.model;

import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.pro.domain.entity.ChartDrillEntity;

import java.util.List;
import java.util.Map;


/**
 * @author bomfish
 */
public interface ChartDrillModel extends IModel<ChartDrillEntity> {
    @Override
   Integer insert(ChartDrillEntity entity);

   /**
    * 层级设置保存
    * @param entity
    * @return java.lang.Integer
    * @author zcp
    * @since v1.0
    * @version v1.0
    */
   Integer save(ChartDrillEntity entity);

    /**
     * 批量插入数据
     *
     * @param list 实体列表
     * @author zcp
     * @since v1.0
     * @version v1.0
     */
   void insertBatch(List<ChartDrillEntity> list);
    /**
     * 批量更新数据
     * @param entityList
     * @param corpid
     * @return void
     */
    void updateBatch(List<ChartDrillEntity> entityList, String corpid);

   @Override
   List<ChartDrillEntity> findEntitys(Map<String, Object> param);

    @Override
   Integer getEntitysCount(Map<String, Object> param);

    @Override
   Integer update(ChartDrillEntity entity);

   ChartDrillEntity getByKey(Long key, String corpid);
   /**
    * 通过statisticsType、chartId获取钻取配置
    * @param corpid 公司id
    * @param statisticsType 图表类型 StatisticsTypeEnum 1系统 2自定义
    * @param chartId 图表id
    * @return com.xbongbong.pro.domain.entity.ChartDrillEntity
    * @author zcp
    * @since v1.0
    * @version v1.0
    */
   ChartDrillEntity getByChartId(String corpid, Integer statisticsType, Long chartId);
   /**
    * 通过statisticsType、chartIdIn获取钻取配置
    * @param corpid
    * @param statisticsType
    * @param chartIdIn
    * @return java.util.List<com.xbongbong.pro.domain.entity.ChartDrillEntity>
    * @author zcp
    * @since v1.0
    * @version v1.0
    */
   List<ChartDrillEntity> findByChartId(String corpid, Integer statisticsType, List<Long> chartIdIn);

    @Override
   List findEntitysWithoutSub(Map<String, Object> param);
}
